package com.dzl.integral.service;

import com.dzl.base.service.BaseService;
import com.dzl.integral.pojo.WelfareIntegralProcess;
import com.dzl.integral.pojo.WelfareIntegralRecord;
import com.dzl.integral.pojo.dto.WelfareIntegralProcessDto;
import com.dzl.integral.pojo.dto.WelfareIntegralRechargeDto;
import com.dzl.integral.pojo.query.WelfareIntegralRecordQuery;
import com.dzl.integral.pojo.vo.WelfareIntegralRecordVo;
import com.github.pagehelper.PageInfo;

import java.util.List;

/**
 * 积分充值审核表(WelfareIntegralRecord)表服务接口
 *
 * @author wangjian
 * @date 2021-09-06 15:12:44
 */
public interface WelfareIntegralRecordService extends BaseService<WelfareIntegralRecord> {

    /**
     * 查询积分充值记录列表
     * @date 2021/9/6 0006 15:53
     * @author wangjian
     * @param welfareIntegralRecordQuery 查询条件
     * @return java.util.List<com.dzl.integral.pojo.vo.WelfareIntegralRecordVo>
     */
    PageInfo<WelfareIntegralRecordVo> selectIntegralRecordListPage(WelfareIntegralRecordQuery welfareIntegralRecordQuery);

    /**
     * 查询未分发的或者已分发还有多的钱的积分充值记录
     * @date 2021/9/6 0006 15:53
     * @author wangjian
     * @param welfareIntegralRecordQuery 查询条件
     * @return java.util.List<com.dzl.integral.pojo.vo.WelfareIntegralRecordVo>
     */
    List<WelfareIntegralRecordVo> selectIntegralRecordNoGrantOrIsGrantButHasIntegralList(WelfareIntegralRecordQuery welfareIntegralRecordQuery);

    /**
     * 充值积分
     * @date 2021/9/6 0006 16:01
     * @author wangjian
     * @param dto 积分充值信息
     * @param createName 创建人
     * @return java.lang.Integer
     */
    Integer saveIntegralRecharge(WelfareIntegralRechargeDto dto,String createName);

    /**
     * 保存积分审核进度
     * @date 2021/9/6 0006 17:22
     * @author wangjian
     * @param dto 审核信息
     * @return java.lang.Integer
     */
    Integer saveIntegralProcess(WelfareIntegralProcessDto dto);

    /**
     * 充值积分自动到账
     * @date 2021/9/7 0007 16:15
     * @author wangjian
     * @param
     * @return java.lang.Integer
     */
    Integer integralRechargeSuccess();

    /**
     * 获取各状态下的充值记录数
     * @date 2021/9/8 0008 16:42
     * @author wangjian
     * @param welfareIntegralRecordQuery 查询条件 同列表查询条件
     * @return java.util.List<java.lang.Integer>
     */
    List<Integer> selectIntegralRecordCount(WelfareIntegralRecordQuery welfareIntegralRecordQuery);

}